// pages/addBook/addBook.js
const db = wx.cloud.database()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    show: false,
    columns: ['语言、文字', '科幻小说', '哲学、宗教'], //选择器中的值
    bookClass: '',
    bookItem: {},
    tempFilePath: ''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  async onLoad(options) {
    // 页面初始化获取bookDetail传过来的id并对其查询bookItem获取书籍信息
    let id = options.id

    let {
      data
    } = await db.collection('bookItem').where({
      id
    }).get()

    if (data.length) {
      this.setData({
        bookItem: data[0],
        bookClass: data[0].bookClass,
        tempFilePath: data[0].imgUrl
      })
    }
  },

  showPopup() {
    this.setData({
      show: true
    });
  },

  onClose() {
    this.setData({
      show: false
    });
  },

  onConfirm(e) { //选择器右上角的确定，点击确定获取值
    this.setData({
      bookClass: e.detail.value,
      show: false
    })
  },

  async updateBook(e) {
    // 获取到的表单数据
    let bookItem = e.detail.value
    // 获取书籍图片的临时路径
    let {
      tempFilePath
    } = this.data

    bookItem.id = this.data.bookItem.id

    // 封面处理，先删除云存储中的图片，再添加新的图片,将返回的fileid加入到bookItem上面

    // 首先删除云存储中的对应图片
    wx.cloud.deleteFile({
      fileList:[this.data.bookItem.imgUrl]
    })

    // 向云存储存储照片，并且返回文件id
    let {
      fileID
    } = await wx.cloud.uploadFile({
      cloudPath: `bookImg/${bookItem.bookClass}/${bookItem.name+Number(new Date())}.png`,
      filePath: tempFilePath
    })

    // 为bookItem添加imgUrl
    bookItem.imgUrl = fileID

    // 将新的书籍信息传给云函数updateBook,给云函数传入书的旧类名，便于查找bookList
    wx.cloud.callFunction({
      name: 'updateBook',
      data: {
        bookItem,
        oldBookClass:this.data.bookItem.bookClass
      }
    })
    console.log(1)
  },

  // 修改图片
  async addImg() {
    let {
      tempFilePaths
    } = await wx.chooseImage({
      count: 1,
      sizeType: ['original', 'compressed'],
      sourceType: ['album', 'camera'],
    })
    this.setData({
      tempFilePath: tempFilePaths[0]
    })

  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})